package com.itbaima.search.repository;

import com.itbaima.search.entity.Item;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;

/**
 * <p>ItemRepository</p>
 *
 * @author Chen
 * @since 2023/2/23 13:54:54
 */
@Repository
public interface ItemRepository extends ElasticsearchRepository<Item, Long> {

    /**
     * 根据标题搜索商品
     *
     * @param title 标题
     * @return 匹配的商品
     */
    Iterable<Item> queryItemsByTitleMatches(String title);

    /**
     * 根据标题和品牌搜索商品
     * @param title 标题
     * @param brand 品牌
     * @return 匹配的商品
     */
    Iterable<Item> queryItemsByTitleMatchesOrBrandMatchesOrderByPriceDesc(String title, String brand);

    /**
     * 根据标题和品牌搜索商品
     * @param title 标题
     * @param brand 品牌
     * @return 匹配的商品
     */
    Page<Item> queryItemsByTitleMatchesOrBrandMatchesOrderByPriceDesc(String title, String brand, Pageable pageable);

}
